package com.cgnpc.scp.achievement.service;

import com.cgnpc.cud.core.domain.AjaxResult;
import com.cgnpc.scp.achievement.mybatis.entity.Award;
import com.cgnpc.scp.achievement.pojo.AwardDetail;
import com.cgnpc.scp.achievement.pojo.SaveAwardReq;
import com.cgnpc.scp.common.bean.CreateFileInfo;
import com.cgnpc.scp.common.bean.MyPageResult;
import com.cgnpc.scp.common.pojo.UserInfo;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;

import java.util.List;
import java.util.Locale;

public interface AwardService
{
    AwardDetail saveAward(SaveAwardReq req);

    AwardDetail getAwardById(String id);

    MyPageResult<Award> queryAwardPageList(Award req);

    boolean delByIds(List<String> ids);

    <T extends Award> CreateFileInfo exportExcel(T reqEntity) throws Exception;

    <T extends Award> AjaxResult importFromExcel(UserInfo loginUserInfo, Locale reqLocale, MultipartHttpServletRequest reqFile) throws Exception;

    <T extends Award> AjaxResult saveOrUpdate(UserInfo loginUserInfo, Locale reqLocale, List<T> reqEntityList);
}
